#ifndef SK_LEVEL_ITEM_H
#define SK_LEVEL_ITEM_H

#include "sk_game_item.h"

namespace sk
{

    class GameLevel;
    class GameItemProperty;

    class LevelItem : public GameItem
    {
    public:
        LevelItem(GameItem * parent, int ind);
        virtual void paint(QPainter * painter, const QStyleOptionViewItem & option, int row, int column);
        sk::GameLevel * level();
        void * get(GameItemType type);
        void onDoubleClickInProjectExplorer();
        int numChilds();
        int numChildsForProxy(int proxyInd);
        GameItem * getChildItemForProxy(int proxyInd, int childInd);
        void doDeleteChildForProxy(int proxyInd, int childInd);
        void doSwapChildsForProxy(int proxyInd, int i, int j);
        void doCloneChildForProxy(int proxyInd, int ind);
        GameItemType type();
        GameItem * getChildItem(int i);
        bool canDeleteFromProjectExplorer();
        virtual int numProperties();
        GameItemProperty * getProperty(int ind);
        GameItem * createItem(void * params);
    };

} // namespace sk

#endif // SK_LEVEL_ITEM_H
